{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "m =100\n",
    "X = 6 * np.random.rand(m,1) - 3\n",
    "y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf95e974ef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(X, y, \"b+\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "poly_features = PolynomialFeatures(degree=2, include_bias=False)\n",
    "X_poly = poly_features.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.48158721] [ 0.48158721  0.23192624]\n"
     ]
    }
   ],
   "source": [
    "print(X[0], X_poly[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1.92015536] [[ 0.97527806  0.46723546]]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "lin_reg = LinearRegression()\n",
    "lin_reg.fit(X_poly, y)\n",
    "print(lin_reg.intercept_, lin_reg.coef_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_predicted = lin_reg.predict(X_poly)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf95b751518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(X, y, \"b+\")\n",
    "plt.plot(X, y_predicted, \"r.\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_learning_curves(model, X, y):\n",
    "    X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2)\n",
    "    train_errors, val_errors = [], []\n",
    "    for m in range(1, len(X_train)):\n",
    "        model.fit(X_train[:m], y_train[:m])\n",
    "        y_train_predict = model.predict(X_train[:m])\n",
    "        y_val_predict = model.predict(X_val)\n",
    "        train_errors.append(mean_squared_error(y_train_predict, y_train[:m]))\n",
    "        val_errors.append(mean_squared_error(y_val_predict, y_val))\n",
    "    plt.plot(np.sqrt(train_errors), \"r-+\", linewidth=2, label=\"train\")\n",
    "    plt.plot(np.sqrt(val_errors), \"b-\", linewidth=3, label=\"val\")\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf95b646048>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lin_reg = LinearRegression()\n",
    "plot_learning_curves(lin_reg, X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
